The present invention relates generally to the use of peripheral devices in a computer system and more particularly to a system and method for balancing the loads on channel paths in a multiple host operating system environment.
Many, if not most, computer systems provide for linking a host computer operating system to one or more peripheral devices which are used as data storage media. For example, the AIX and OS/2 operating systems made by International Business Machines Corporation of Armonk, N.Y. can interface with several different types of storage devices that have a so-called Small Computer System Interface (SCSI) interface format.
Each SCSI contains input/output (I/O) paths to each of its attached data storage devices. Included among SCSI devices are magnetic tape data storage devices, magnetic disk data storage devices, and optical disk data storage devices. Also included among SCSI devices are medium changer library devices, each of which contains several data storage devices. In medium changer devices, one of the data storage disks at a time can be selected and then engaged with a transparent element within the device for accessing data of a data storage device.
In a typical file server, the storage needs typically exceed the capacity of current hard disks, and thus many file servers use multiple disks to provide the necessary storage capacity. A typical disk drive storage configuration uses a redundant array of inexpensive disks, referred to as a RAID configuration, whereby the drives (data storage devices) are linked together through hardware to form a drive array.
FIG. 1 depicts a conventional data transfer system, generally designated 10. As shown, the conventional system 10 includes a computer 12 with associated operating system 14. The conventional system 10 includes a plurality of computer peripheral device drivers 16, 18, 20 for controlling data storage devices 22, 24, 26, respectively. More particularly, the system includes first, second, and third device drivers 16, 18, 20 for respectively controlling first, second, and third data storage devices 22, 24, 26. It is to be understood that the conventional system 10 can include greater or fewer device drivers. The data storage devices 22, 24, 26 in the array are coordinated with each other and information is allocated between them. In this manner, a number of individual hard disks are combined to create a massive virtual system.
In accordance with principles well-known in the art, each device driver 16, 18, 20 receives data I/O requests from an application running on the operating system 14. Further, each device driver 16, 18, 20 executes each I/O request by issuing an appropriate command sequence to its associated data storage device 22, 24, 26 to cause the device 22, 24, 26 to transfer data in accordance with the I/O request. Thus, each device driver 16, 18, 20 is an intermediary between the operating system 14 and the associated data storage device 22, 24, 26, respectively. Stated differently, each device driver 16, 18, 20 functions as a data transfer controller between the operating system 14 and the associated data storage device 22, 24, 26.
One aspect of a RAID storage system is its ability to account for failures using redundancy. To decrease the possibility of losing data stored in a particular drive, each disk drive in the RAID can have multiple paths connected to it. FIG. 2 depicts a conventional operating system 100 with multiple paths 108 connecting the device driver 102 to the respective data storage devices in the RAID 110. However, the conventional operating system 100 cannot recognize multiple paths to a single device. In this configuration, the conventional operating system 100 operates as though each path is connected to a different device, as opposed to multiple paths connected to a single device. Although conventional solutions to these problems exist, these conventional solutions are typically incorporated directly into the operating system 100. These conventional solutions are platform specific and thus not portable from one operational environment to another. Therefore, these conventional solutions can only be utilized by a single operating system 100.
Today, many enterprises have a multiplicity of host computer systems that either function independently or are connected through a network. It is desirable that each system in the multiple host system environment provide the redundancy associated with multiple paths connected to each disk drive. Each system must therefore be capable of managing the multiple paths for each drive. This capability should be easily provided to each operating system in the multiple system environment.
The present invention provides a method and system for path management of data processing in an environment which includes a plurality of hosts running on multiple operating systems. The method and system comprises providing a portable path management code and providing a plurality of control modules. Each of the control modules has an area which can only be accessed by the portable path management code. The method and system also comprises providing an interface to at least one device driver from the portable management code to allow the portable management code to control access to plurality of paths to a plurality of storage subsystems by the at least one device driver.
The method and system in accordance with the present invention can provide path load balancing and fail over for a plurality of paths to a plurality of storage subsystems. The path management code is portable and platform independent so that the functionality can be ported easily to each operating system in the multiple system environment.